<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>


  
  
  <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">


  
  
  <meta content="Mozilla/4.79 [en] (X11; U; Linux 2.4.18-3 i686) [Netscape]" name="GENERATOR">


  
  
  <meta content="J. Mark Shacklette" name="Author">


  
  
  <title>CSPP 51081 Home Page</title>
</head>


<body style="background-image: url(file:///home/mark/html/51081/mydarkgrey.pm); background-color: rgb(204, 255, 255); color: rgb(0, 0, 0);" link="#0000ef" alink="#ff0000" vlink="#52188c">


<center><img src="cs-logo.gif" height="137" width="316"> <br>


&nbsp;
<p><b><font size="+3">CSPP 51081 Home Page</font></b> <br>


&nbsp; </p>


<p><b><font size="+2">CSPP 51081&nbsp; Unix Systems Programming</font></b>
<br>


<b><font size="+1">(<i>aka</i> The Unix Programming Environment)</font></b></p>


</center>


<p><b><font size="+1"><br>


Course Description</font></b> </p>


<p>CSPP 51081 is a UNIX systems programming course which explores
various and sundry topics in systems programming using the Unix
platform. Topics to be covered in detail will include: </p>


<p>Unix History and Philosophy <br>

Awk Programming<br>

Unix File I/O<br>

Static and Shared Libraries<br>

Processes and Signals (fork, etc.) <br>


Pipes (unnamed and FIFOs) <br>


System V IPC (semaphores, message queues, shared memory) <br>


Berkeley Sockets <br>


Sun RPC <br>


POSIX pThreads </p>


<p>In addition to the traditional systems programming topics, this
course will also introduce students to a significant level of detail in
the use of Sun RPC (Remote Procedure Calls) and multithreaded
programming, including operating system support and models (1-1,
many-1, many-many).&nbsp; Students will be exposed to the numerous
issues involved in safe and efficient multithreading strategies using
the POSIX pThreads API as implemented by Linux's clone() and Solaris
threads.&nbsp; Multithreading architectures will be discussed as well
as
advanced issues such as mutexes, semaphores, race conditions,&nbsp;
deadlocks, etc.&nbsp; Berkeley socket programming will be covered in
detail, as well as the creation and use of shared libraries. </p>


<p>Various tools used in developing software in C on Unix will be
covered, including gcc, gdb, ddd, gprof, cvs, etc. <br>


Because this is a programming course, students will be expected to know
the C programming language upon course entry. </p>


<p><b><font size="+1">Teaching staff:</font></b> </p>


<p>J. Mark Shacklette,
mark@cs.uchicago.edu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (<font color="#0a0a0a">
NOTE:&nbsp;&nbsp; ALL non-confidential email should be addressed to the
<a href="mailto:cspp51081@mailman.cs.uchicago.edu">list.</a></font> ) <br>


(Office hours listed on the <a href="syllabus.html">syllabus</a>
)&nbsp;<br>


</p>


Teaching Assistants are listed on the syllabus.

<p><b><font size="+1">Syllabus:</font></b> </p>


<p>Details of the course can be found in the course <a href="syllabus.html">syllabus</a>
. <br>


&nbsp; </p>


<p><b><font size="+1">Prerequisites:</font></b> </p>


<p>Students are required to know basic C programming.&nbsp; Prior
minimal exposure to Unix is recommended. <br>


&nbsp; </p>


<p><b><font size="+1">Lecture Notes:</font></b> </p>


<p>Lecture
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.1/alternate%20formats/html/lecture.1.html">html format&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="lectures/lecture.1/alternate%20formats/lecture.1.pdf">pdf</a> </p>


<p>Lecture
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.2/alternate%20formats/html/lecture.2.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span></span><a href="lectures/lecture.2/alternate%20formats/lecture.2.pdf">pdf</a>
</p>


<p>Lecture
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.3/alternate%20formats/html/lecture.3.html"> html&nbsp; format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"></span> <a href="lectures/lecture.3/alternate%20formats/lecture.3.pdf">pdf</a>
</p>


<p>Lecture
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.4/alternate%20formats/html/lecture.4.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="lectures/lecture.4/alternate%20formats/lecture.4.pdf">&nbsp;pdf</a>
</p>


<p>Lecture
5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.5/alternate%20formats/html/lecture.5.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="lectures/lecture.5/alternate%20formats/lecture.5.pdf">pdf</a>
</p>


Lecture 6&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; No Lecture--Mid Term Exam<br>


<p><font size="+0">Lecture
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.7/alternate%20formats/html/lecture.7.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="lectures/lecture.7/alternate%20formats/lecture.7.pdf">pdf</a></font>
</p>


<p>Lecture
8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.8/alternate%20formats/html/lecture.8.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="lectures/lecture.8/alternate%20formats/lecture.8.pdf">pdf</a></p>
<p>Lecture 9 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="lectures/lecture.9/alternate%20formats/html/lecture.9.html"> html format</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="lectures/lecture.9/alternate%20formats/lecture.9.pdf">pdf</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp; </p>


<p><b><font size="+1"><a href="syllabus.html#schedule">Lab
Assignments</a></font></b> &nbsp; <b><font size="+1">(<a href="LabFAQ/FAQ.html">Lab
FAQ</a>)</font></b> <br>


</p>


<p><big><a href="Grades/midtermsol.html"> 
Midterm Live Solutions</a></big><br>


</p>


<!--
<p><b><font size="+1"><a
 href="Grades/Grades.html">
 Grades</a></font></b></p>
-->
<big>Final
Exam Study Guide</big><br>


<br>


<p><b><font size="+1">Online Sources of Relevant Information:</font></b>
</p>


<p><a name="Current Info"></a><b><font size="+1">Current Info:</font></b>
</p>


<p>Reading List: </p>


<p>To join the Listserv for this course, go to:&nbsp;&nbsp;<a href="http://mailman.cs.uchicago.edu/mailman/listinfo/cspp51081">&nbsp;&nbsp;&nbsp;
http://mailman.cs.uchicago.edu/mailman/listinfo/cspp51081</a> <br>


</p>


<hr>
<p>I can be reached at several email addresses, among them: </p>


<p><a href="mailto:mark@cs.uchicago.edu">mark@cs.uchicago.edu</a> <br>


<a href="mailto:mshack@post.harvard.edu">mshack@post.harvard.edu</a> <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; <br>


&nbsp; </p>


</body>
</html>
